Dig (Domain Information Groper) 是一個Linux 命令行實用程序,它通過查詢名稱服務器并向您顯示結果來執行 DNS 查找。在本教程中,您將找到在 Linux 操作系統中應該知道的命令的所有基本用法。默認情況下,dig 將DNS查詢發送到解析器 (/etc/resolv.conf) 中列出的名稱服務器,除非它被要求查詢特定的名稱服務器。
在 Linux 上安裝 Dig
Dig 是 DNS 實用程序包的一部分,通常與 BIND 名稱服務器一起安裝。您還可以通過SSH訪問您的 VPS并在命令行中使用以下命令來單獨安裝包含 dig 的實用程序包:
Debian 和 Ubuntu:
apt-get 安裝 dnsutils
中央操作系統 7:
yum 安裝 bind-utils
安裝后,檢查版本,以確保安裝成功完成:
挖-v
挖掘語法
在最簡單的形式中,dig 實用程序的語法如下所示:
挖掘 [服務器] [名稱] [類型]
[server]?– 要查詢的名稱服務器的 IP 地址或主機名。
如果服務器參數是主機名,那么 dig 將在繼續查詢名稱服務器之前解析主機名。
它是可選的,如果您不提供服務器參數,則 dig 使用/etc/resolv.conf中列出的名稱服務器。
[name]?– 要查找的資源記錄的名稱。
[type]?– dig 請求的查詢類型。例如,它可以是 A 記錄、MX 記錄、SOA 記錄或任何其他類型。如果未指定類型參數,默認情況下 dig 會查找 A 記錄。
如何使用挖掘命令
讓我們進入命令的基本用法:
挖一個域名
要對域名執行 DNS 查找,只需將名稱與 dig 命令一起傳遞:
挖掘 hostinger.com
默認情況下,當沒有指定其他選項時,dig 命令將顯示 A 記錄。輸出還將包含其他信息,如已安裝的挖掘版本、有關答案的技術細節、有關查詢的統計信息、問題部分以及其他一些信息。
簡短的答案
上面的 dig 命令在不同的部分包含很多有用的信息,但有時您可能只需要查詢的結果。您可以使用 +short 選項來做到這一點,它將僅顯示域名的 IP 地址(A 記錄):
挖掘 hostinger.com +short
詳細解答
有時您想詳細查看答案部分。因此,對于答案部分的詳細信息,您可以使用+noall選項停止顯示所有部分,并僅通過使用dig 命令的+answer選項查詢答案部分。
挖掘 hostinger.com +noall +answer
指定名稱服務器
默認情況下,dig 命令將查詢/etc/resolv.conf中列出的名稱服務器來為您執行 DNS 查找。您可以通過使用?@符號后跟名稱服務器的主機名或 IP 地址來更改此默認行為。
以下 dig 命令使用@8.8.8.8選項將 DNS 查詢發送到 Google 的名稱服務器 (8.8.8.8)。
挖 @8.8.8.8 hostinger.com
查詢所有 DNS 記錄類型
要查詢與域關聯的所有可用 DNS 記錄類型,請使用ANY選項。ANY選項將在輸出中包含所有可用的記錄類型:
挖掘 hostinger.com 任何
搜索記錄類型
如果要查找特定記錄,只需將類型添加到命令末尾即可。
例如,要查詢僅獲取與域關聯的郵件交換-MX-應答部分,您可以使用以下 dig 命令:
挖掘 hostinger.in MX
同樣,要查看與域關聯的其他記錄,請在 dig 命令末尾指定記錄類型:
dig hostinger.com txt(查詢TXT記錄) dig hostinger.com cname(查詢CNAME記錄) dig hostinger.com ns(查詢NS記錄) dig hostinger.com A(查詢A記錄)
跟蹤 DNS 路徑
Dig 允許使用+trace選項跟蹤 DNS 查找路徑。該選項進行迭代查詢以解析名稱查找。它將查詢從根開始的名稱服務器,然后沿途使用引用之后的迭代查詢向下遍歷名稱空間樹:
挖掘 hostinger.com +trace
反向 DNS 查詢
反向 DNS 查找可讓您查找與 IP 地址關聯的域和主機名。要使用 dig 命令執行反向 DNS 查找,請使用 -x選項,后跟您選擇的 IP 地址。在以下示例中,dig 將對與 google.com 關聯的 IP 地址執行反向 DNS 查找:
挖 +answer -x 172.217.166.46
請記住,如果沒有為 IP 地址定義 PTR 記錄,則無法進行反向 DNS 查找,因為 PTR 記錄指向域或主機名。
批量查詢
使用 dig 實用程序,您可以對域列表執行 DNS 查找,而不是對每個域單獨執行相同的操作。為此,您需要為 dig 提供一個域名列表——文件中每行一個。文件準備好后,使用 -f 選項指定文件名:
vi 域名.txt 托管商.com 谷歌.com ubuntu.com
dig -f domain_name.txt +short
控制挖掘行為
通過在將隨命令自動運行的~/.digrc文件中設置選項,可以永久自定義命令的輸出。
假設您只想查看答案部分——在~/.digrc文件中指定所需的選項,這樣您就不必在執行查詢時鍵入它們。
echo "+noall +answer" > ~/.digrc
現在執行域的 DNS 服務器查找。輸出確認 dig 使用~/.digrc文件中設置的選項運行。
結論
這就是開始在 Linux 中使用 dig 所需的所有基礎知識。現在您可以使用各種選項對域執行 DNS 查找。想了解更多?使用 man dig 命令查看手冊頁,找出所有可能的用途和選項。